package main

import (
	_ "baseLearning/base1/pkg" //引入某个包，但不直接使用包里的函数，而是调用该包里面的init函数
	"fmt"
	"sync"
	"time"
)

var wg sync.WaitGroup
var w = sync.WaitGroup{}
var num = 0
var lock = sync.Mutex{}

func mainrOUTINE() {
	// fmt.Println("用户注册校验完成")
	// wg.Add(1)
	// go SendCode()
	// wg.Wait()
	// fmt.Println("验证码发送成功，请注意查收")

	w.Add(2)
	go AddNumLock()
	go AddNumLock()
	w.Wait()
	fmt.Println(num)
}

// SendCode 发送验证码
func SendCode() {
	fmt.Println("发送验证码开始")
	time.Sleep(2 * time.Second)
	fmt.Println("发送验证码完成！")
	//相当于wg.Add(-1)
	wg.Done()

}

func AddNum() {
	for i := 0; i < 1000000; i++ {
		num++
	}
	w.Done()
}

func AddNumLock() {
	lock.Lock() // 上锁
	for i := 0; i < 1000000; i++ {
		num++
	}
	lock.Unlock() // 解锁
	w.Done()
}
